/*******************************************************************************
* Copyright (c) 2008, 2012 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
* http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
******************************************************************************/
package org.eclipse.ui.tests.session;
import org.eclipse.ui.tests.harness.util.RCPTestWorkbenchAdvisor;
import junit.framework.TestCase;
import junit.framework.TestSuite;
/**
* @since 3.5
*/
public class RestoreSessionTest extends TestCase {
public static TestSuite suite() {
TestSuite ts = new TestSuite("org.eclipse.ui.tests.session.RestoreSessionTest");
ts.addTest(new RestoreSessionTest("testDisplayAccess"));
return ts;
}
public RestoreSessionTest(String name) {
super(name);
}
/**
* Checks various combinations of Thread + DisplayAccess + [a]sync execs.
* Anything without a call to DisplayAccess should be deferred until after startup.
* @see RCPTestWorkbenchAdvisor#preStartup()
*/
public void testDisplayAccess() {
// check that there was a display during startup
assertNotNull(RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
assertNotNull(RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
assertNotNull(RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
assertNotNull(RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
assertNotNull(RCPTestWorkbenchAdvisor.asyncDuringStartup);
// test startup threading - async run during startup
assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.asyncDuringStartup);
// sync & async from qualified thread should have run during the startup
assertEquals(Boolean.TRUE, RCPTestWorkbenchAdvisor.syncWithDisplayAccess);
assertEquals(Boolean.TRUE, RCPTestWorkbenchAdvisor.asyncWithDisplayAccess);
// sync & async from a non-qualified thread should not have run during the startup
assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.syncWithoutDisplayAccess);
assertEquals(Boolean.FALSE, RCPTestWorkbenchAdvisor.asyncWithoutDisplayAccess);
// display access during startup in UI thread should not cause an exception
assertFalse(RCPTestWorkbenchAdvisor.displayAccessInUIThreadAllowed);
}
}